/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model.dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import model.bean.BeanCiclo;
import model.bean.BeanCurso;


import model.daobase.DBase;

/**
 *
 * @author alulab
 */
public class DaoCurso extends DBase{
    
    //listar
      public ArrayList<BeanCurso> getCursoList() {
        ArrayList<BeanCurso> CursoList = new ArrayList<BeanCurso>();
        this.init_mysql();
        PreparedStatement pstmt = null;
        ResultSet res = null;
        BeanCurso curso = null;
        
        try {

            String query = "select cu.idcurso,cu.nombre_curso,ci.idciclo,ci.nombre_ciclo,cu.tag"
                    + " from curso cu inner join ciclo ci on cu.idciclo=ci.idciclo "
                    
                    + "ORDER BY cu.nombre_curso ASC";//aqui cambiar en la base idcurso

            pstmt = conn.prepareStatement(query);
            res = pstmt.executeQuery();
           
            while (res.next()) {
                
                curso = new BeanCurso();
                curso.setIdcurso(res.getInt(1));
                curso.setNombre_curso(res.getString(2));
                
                BeanCiclo ciclo= new BeanCiclo();
                ciclo.setIdciclo(res.getInt(3));
                ciclo.setNombre_ciclo(res.getString(4));
                
                curso.setCiclo(ciclo);
                
                curso.setTag(res.getString(5));
                 CursoList.add(curso);
                }
            
               

            res.close();
            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }

        return CursoList;

    }
    
      
      //editar
       public void update_curso(BeanCurso curso) {
        this.init_mysql();
        PreparedStatement pstmt = null;

        try {

            String query = "UPDATE curso SET nombre_curso=?,idciclo=? WHERE idcurso=" + curso.getIdcurso();
            pstmt = conn.prepareStatement(query);
            pstmt.setString(1, curso.getNombre_curso());
            pstmt.setInt(2, curso.getCiclo().getIdciclo());
            pstmt.executeUpdate();
            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }
    }
       
       public BeanCurso get(int idcurso){
           BeanCurso curso=new BeanCurso();
           
           this.init_mysql();
        PreparedStatement pstmt = null;
        ResultSet res=null;

        try {

              String query = "select cu.idcurso,cu.nombre_curso,ci.idciclo,ci.nombre_ciclo,cu.tag"
                    + " from curso cu inner join ciclo ci on cu.idciclo=ci.idciclo "
                    
                    + "WHERE cu.idcurso="+idcurso;
            pstmt = conn.prepareStatement(query);
            res=pstmt.executeQuery();
            while(res.next()){
                curso.setIdcurso(res.getInt(1));
                curso.setNombre_curso(res.getString(2));
                
                BeanCiclo ciclo=new BeanCiclo();
                
                ciclo.setIdciclo(res.getInt(3));
                ciclo.setNombre_ciclo(res.getString(4));
                curso.setCiclo(ciclo);
                
               curso.setTag(res.getString(5));
               
            }
            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }
           return curso;
       }
       
      //insertar
       
      
       public void insert(BeanCurso curso) {
        this.init_mysql();
        PreparedStatement pstmt = null;

        try {

            String query = " INSERT INTO curso(nombre_curso,idciclo,tag) "
                    + "VALUES(?,?,?)";


            pstmt = conn.prepareStatement(query);

            pstmt.setString(1, curso.getNombre_curso());
            pstmt.setInt(2, curso.getCiclo().getIdciclo());
            pstmt.setString(3, curso.getTag());
            
         
            pstmt.executeUpdate();

            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }


       }
      
      //borrar
       
       
          public void delete(Integer idcurso) {

        this.init_mysql();
        PreparedStatement pstmt = null;


        try {

            String query = "UPDATE curso set idestado=-1 where idcurso=" + idcurso;
            pstmt = conn.prepareStatement(query);
            pstmt.executeUpdate();
            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }

    }
          
          
          
          
//          
//        public ArrayList<BeanCurso> getbyString(String cadena) {
//
//        this.init_mysql();
//        PreparedStatement pstmt = null;
//        ResultSet res = null;
//        
//        
//        ArrayList<BeanCurso>lista_cursos = new ArrayList<BeanCurso>();
//        String temporal="%"+cadena+"%";
//        
//        try {
//
//            String query = "select cu.idcurso,cu.nombre_curso,ci.idciclo,ci.nombre_ciclo,ta.idtag, ta.nombre_tag"
//                    + " from curso cu inner join ciclo ci on cu.idciclo=ci.idciclo "
//                    + "inner join tag ta on ta.curso_idcurso=cu.idcurso "
//                    + " WHERE cu.nombre_curso LIKE ? or nombre_ciclo LIKE ? or nombre_tag LIKE ?";
//
//            pstmt = conn.prepareStatement(query);
//            pstmt.setString(1, temporal);
//            pstmt.setString(2, temporal);
//            pstmt.setString(3, temporal);
//            
//            res = pstmt.executeQuery();
//             while (res.next()) {
//                BeanCurso curso= new BeanCurso();
//                curso.setIdcurso(res.getInt(1));
//                curso.setNombre_curso(res.getString(2));
//                BeanCiclo ciclo= new BeanCiclo();
//                ciclo.setIdciclo(res.getInt(3));
//                ciclo.setNombre_ciclo(res.getString(4));
//                curso.setCiclo(ciclo);
//                
//                BeanTag tag= new BeanTag();
//             
//                
//            }
//
//            res.close();
//            pstmt.close();
//            conn.close();
//
//        } catch (SQLException e1) {
//            e1.getMessage();
//        }
//
//        return lista_cursos;
//
//    }
//       
//       public ArrayList<Integer> getTiposArchivos (int num_exam, int num_pc){
//           ArrayList<Integer> tiposArchivos=new ArrayList<Integer>();
//           int i=0;
//           while(i<num_exam){
//               
//               tiposArchivos.add(i+5);
//               i++;
//               
//           }
//           i=0;
//           while(i<num_pc){
//               tiposArchivos.add(i+1);
//               i++;
//               
//           }
//           
//           return tiposArchivos;
//           
//       }
//      
    
}
